<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 【作用域】
        // 作用域是运行时代码中某些特定部分中变量,函数和对象的可访问性。
        // 换句话说,作用域决定了代码中变量和其他资源的可见性。
        
        function Fun(){
            let a ='内层变量'
            console.log(a);
        }
        Fun(); //先执行函数
        // console.log(a);

        function fun (){
            let a ='变量'
            console.log(a);
        }
        fun()
        // console.log(a); //a is not defined
        // 变量a在全局作用域没有声明,所以在全局作用域下取值会报错。
        
        // 作用域就是一个独立的地盘,让变量不会外泄、暴露出去。
        // 作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。
        
        // ES6之前JavaScript没有块级作用域,只有全局作用域和函数作用域。
        // ES6的到来,为我们提供了"块级作用域",可通过新增命令let和const来体现。
    </script>
</body>
</html>